{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "initial_id",
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:55:47.555986Z",
     "start_time": "2023-12-19T14:55:47.449265300Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "outputs": [],
   "source": [
    "data = pd.read_csv(\"d://data//otto//train.csv\")"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:55:47.821701100Z",
     "start_time": "2023-12-19T14:55:47.461060100Z"
    }
   },
   "id": "db890369b70e3f76"
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "outputs": [],
   "source": [
    "x = data.drop([\"id\", \"target\"], axis=1)  #id没用的，target用来作为y值\n",
    "y = data[\"target\"]"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:55:47.854219600Z",
     "start_time": "2023-12-19T14:55:47.822701200Z"
    }
   },
   "id": "b36c1bc07d61416c"
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "outputs": [],
   "source": [
    "### 方法2.增加欠采样样本数\n",
    "from imblearn.over_sampling import SMOTE\n",
    "\n",
    "x_resampled, y_resampled = SMOTE().fit_resample(x, y)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:55:58.454101600Z",
     "start_time": "2023-12-19T14:55:47.856218100Z"
    }
   },
   "id": "6df95be97343ddea"
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 2.2.把标签值转换为数字"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "ffd5aa478f4e595c"
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import LabelEncoder\n",
    "\n",
    "encoder = LabelEncoder()"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:55:58.468769500Z",
     "start_time": "2023-12-19T14:55:58.459112300Z"
    }
   },
   "id": "1d08b98b8464f40f"
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "outputs": [
    {
     "data": {
      "text/plain": "array([0, 0, 0, ..., 8, 8, 8])"
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_resampled = encoder.fit_transform(y_resampled)\n",
    "y_resampled"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:55:58.520764900Z",
     "start_time": "2023-12-19T14:55:58.465771900Z"
    }
   },
   "id": "ecbf43e689ed1dc1"
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "trainX, testX, trainY, testY = train_test_split(x_resampled, y_resampled, test_size=0.2)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:55:58.824559500Z",
     "start_time": "2023-12-19T14:55:58.515770900Z"
    }
   },
   "id": "f231bc2c0ea6c22a"
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "outputs": [],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "\n",
    "rf = RandomForestClassifier(oob_score=True)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:55:58.869353200Z",
     "start_time": "2023-12-19T14:55:58.825988700Z"
    }
   },
   "id": "e6622e53c428e80f"
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "预测值= [5 6 7 ... 4 7 2]\n",
      "得分= 0.9096485182632668\n",
      "包外估计得分= 0.9047278554075707\n"
     ]
    }
   ],
   "source": [
    "rf.fit(trainX, trainY)\n",
    "\n",
    "y_pre = rf.predict(testX)\n",
    "print(\"预测值=\", y_pre)\n",
    "score2 = rf.score(testX, testY)\n",
    "oScore2 = rf.oob_score_  # 包外估计得分\n",
    "\n",
    "print(\"得分=\", score2)\n",
    "print(\"包外估计得分=\", oScore2)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:56:45.948668Z",
     "start_time": "2023-12-19T14:55:58.858344Z"
    }
   },
   "id": "6db2b912296430a2"
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:975: FutureWarning: `sparse` was renamed to `sparse_output` in version 1.2 and will be removed in 1.4. `sparse_output` is ignored unless you leave `sparse` to its default value.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:975: FutureWarning: `sparse` was renamed to `sparse_output` in version 1.2 and will be removed in 1.4. `sparse_output` is ignored unless you leave `sparse` to its default value.\n",
      "  warnings.warn(\n"
     ]
    }
   ],
   "source": [
    "# logloss模型评估\n",
    "\n",
    "from sklearn.metrics import log_loss\n",
    "from sklearn.preprocessing import OneHotEncoder\n",
    "\n",
    "oneHot = OneHotEncoder(sparse=False)\n",
    "\n",
    "testY1 = oneHot.fit_transform(testY.reshape(-1, 1))\n",
    "y_pre1 = oneHot.fit_transform(y_pre.reshape(-1, 1))"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:56:45.965641600Z",
     "start_time": "2023-12-19T14:56:45.947688200Z"
    }
   },
   "id": "9f8f449253b349a5"
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": "3.120629624653896"
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "log_loss(testY1, y_pre1, eps=1e-15, normalize=True)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:56:46.031766500Z",
     "start_time": "2023-12-19T14:56:45.965641600Z"
    }
   },
   "id": "9f015e13ca4256a2"
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "outputs": [
    {
     "data": {
      "text/plain": "array([[0.  , 0.  , 0.  , ..., 0.  , 0.  , 0.  ],\n       [0.  , 0.26, 0.3 , ..., 0.32, 0.01, 0.06],\n       [0.04, 0.02, 0.02, ..., 0.02, 0.65, 0.19],\n       ...,\n       [0.  , 0.  , 0.  , ..., 0.  , 0.  , 0.  ],\n       [0.  , 0.  , 0.  , ..., 0.  , 1.  , 0.  ],\n       [0.  , 0.  , 0.66, ..., 0.  , 0.  , 0.  ]])"
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 改变预测值的输出模式，让输出结果为百分比，降低logloss值\n",
    "\n",
    "y_pre_proba = rf.predict_proba(testX)\n",
    "y_pre_proba"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:56:47.260571400Z",
     "start_time": "2023-12-19T14:56:46.019774800Z"
    }
   },
   "id": "6c12e22eeec8997f"
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "outputs": [
    {
     "data": {
      "text/plain": "0.9047278554075707"
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rf.oob_score_"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:56:47.261551200Z",
     "start_time": "2023-12-19T14:56:47.253689700Z"
    }
   },
   "id": "f301eb4528c6721"
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2922: UserWarning: The y_pred values do not sum to one. Starting from 1.5 thiswill result in an error.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": "0.37167630155899206"
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "log_loss(testY1, y_pre_proba, eps=1e-15, normalize=True)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:56:47.328769600Z",
     "start_time": "2023-12-19T14:56:47.262566800Z"
    }
   },
   "id": "7bb60b673b8b289a"
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 调优"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "46b4e4a0266aaca6"
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\ensemble\\_forest.py:578: UserWarning: Some inputs do not have OOB scores. This probably means too few trees were used to compute any reliable OOB estimates.\n",
      "  warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\ensemble\\_forest.py:578: UserWarning: Some inputs do not have OOB scores. This probably means too few trees were used to compute any reliable OOB estimates.\n",
      "  warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:2851: FutureWarning: Setting the eps parameter is deprecated and will be removed in 1.5. Instead eps will always havea default value of `np.finfo(y_pred.dtype).eps`.\n",
      "  warnings.warn(\n"
     ]
    }
   ],
   "source": [
    "# 确定n_estimators的取值范围\n",
    "tuned_parameters = range(10, 200, 10)\n",
    "\n",
    "# 创建添加accuracy的一个numpy\n",
    "accuracy_t = np.zeros(len(tuned_parameters))\n",
    "\n",
    "# 创建添加error的一个numpy\n",
    "error_t = np.zeros(len(tuned_parameters))\n",
    "\n",
    "# *******************调优过程实现*******************\n",
    "for j, one_parameter in enumerate(tuned_parameters):\n",
    "    rf2 = RandomForestClassifier(n_estimators=one_parameter,\n",
    "                                 max_depth=10,\n",
    "                                 max_features=10,\n",
    "                                 min_samples_leaf=10,\n",
    "                                 oob_score=True,\n",
    "                                 random_state=0,\n",
    "                                 n_jobs=-1)\n",
    "    rf2.fit(trainX, trainY)\n",
    "    #输出accuracy\n",
    "    accuracy_t[j] = rf2.oob_score_\n",
    "    #输出log_loss\n",
    "    y_pre = rf2.predict_proba(testX)\n",
    "    error_t[j] = log_loss(testY, y_pre, eps=1e-15, normalize=True)\n",
    "    # print(error_t)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:58:25.777967600Z",
     "start_time": "2023-12-19T14:56:47.303779900Z"
    }
   },
   "id": "88f240f89dd36872"
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 2000x400 with 2 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABmAAAAFxCAYAAABk0GfxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAACyqklEQVR4nOzdd3wUdf4/8NdszaZteg8dQoAQCaEIfAHBCogFUVHxTu9OsZ4idycWEEF/gu3Uu1PU81TsAhYsKMIponIgNQRSCJDe626S7fP7YwtEAiSwk9ndvJ6PRx5hZ2d23/s2Qmbe8/68BVEURRAREREREREREREREZHXKOQOgIiIiIiIiIiIiIiIKNCwAENERERERERERERERORlLMAQERERERERERERERF5GQswREREREREREREREREXsYCDBERERERERERERERkZexAENERERERERERERERORlLMAQERERERERERERERF5GQswREREREREREREREREXsYCDBERERERERERERERkZexAENERERERERERERERORlKrkD8Bf19QaIotxRBAZBAKKjw5hTCTHH0mOOpcccS485lh5zLD3m2PvcOSXqLv5/6D38u016zLH0mGPpMcfSY46lxxxLjzmWRlfPm1iA6SJRBH9AvYw5lR5zLD3mWHrMsfSYY+kxx9Jjjonkx/8PvY85lR5zLD3mWHrMsfSYY+kxx9JjjuXBJciIiIiIiIiIiIiIiIi8jAUYIiIiIiIiIiIiIiIiL2MBhoiIiIiIiIiIiIiIyMtYgCEiIiIiIiIiIiIiIvIyFmCIiIiIiIiIiIiIiIi8jAUYIiIiIiIiIiIiIiIiL2MBhoiIiIiIiIiIiIiIyMtYgCEiIiIiIiIiIiIiIvIyFmCIiIiIiIiIiIiIiIi8TCV3AETkfRabA6UNbTC3WaFTK6FWChAEQe6wiIiIiIiIiIiIyMtEUYQIwCECEEU4REB0bQcAo9kGo9kGhwMQIbr2AxwQIYodj3f/WRSd+zqfBxyiCJVSQLBaCZ1aCa1KweuNXcACDFGAOVRtwP3rD6C+zerZplQ4/3IM1iidf0lqlAhWKxCsUUGnVri2qxCsUUDn3s+9byePQzRKqJRsoCMiIiIiIiIiIv/kEEXY7CJsDhE2h8P53S7C6nDAaj/+55O22R2wOpzfT3zOane+htXufux8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MAAAAAAAAAAAALWMBgwAAAAAAAAAAEAtowEDAAAAAAAAAABQy2jAAADqrTNnzlzUdSkpKZo3b57Onj0rSTpy5Ig+/PBDSVJ6errsdnuVr/H1119X6zwAAAAAcCbqJgAwDw0YAEC99J///EcPPvig48f80KFDFRMTowEDBpT607NnT8XFxZW69vvvv9dHH30kLy8vSdKpU6f02WefSZImTZqkd955p9L3/uKLLzRlyhTt27dPmzZt0oEDB8o979ChQ1q8eLEkqV27dsrKytLHH3+shIQEbdq0SY8//vgfygEAAAAAVIa6CQDMRQMGAFCupUuXaujQoc4O46L17NlTDRs21Ntvvy1JslqtmjZtmlatWqXx48dr9uzZWrVqlR566CFZrdZS1y5ZskQPPPCAvL29JUmenp7y9/eXJI0bN04rVqxQRkZGue87b948zZs3T0uWLFGnTp2Umpqq+++/X0uWLClzbkhIiOLj47Vnzx55eXkpLy9PH3/8scLDw7Vnzx41aNCgFjMCAAAAoLZRN1E3AUBlaMAAwCUsKipKx48fL/fYgAED9N5779XZ+5khNjZWLVu2lCR5eHjIMAzZ7XYtXbpUe/fuddzlZbFYHNds3rxZu3btUs+ePUu9lqenpyTpsssu0+rVqxUSElLm/SZOnKhp06bJYrHoH//4h+68807NmTNH3t7emjBhgv75z3+WOv/QoUMaPHiwkpKSZLFY9P3336tXr146dOiQNm3apD/96U+Oc3Nzc2slJwAAAABqhrqJugkALpaXswMAALgmb29vx51M7sZut8tqtap169Zq3bq1pOJC4syZM7rllluUmZmpn376SevXr3cUGiVmzZolSdqxY4eGDRsmb29v2e12ZWRkKCYmxnFefn6+Xn31VfXq1cvx3AMPPKDbbrtNdrtdf//737Vq1SpFRERIKi5QCgoKSr3X7t27deTIEX3wwQey2+3asWOHDMPQ1q1btWXLFh0+fFizZ89WWlqaQkJC9N133znuKAMAAADgfNRN1E0AUBlmwACAi/jvf/+rmJgYrV27Vn379tV1112nTz/9tMrrdu7cqcGDB+vaa6/VyJEjlZ2d7Ti2atUqxcTE6Oqrr9ajjz6q9PR0SdItt9yiqKgoSVK/fv0UFRWlr776qtTrljeVPioqSlOnTlWXLl303nvv6c4771Tv3r2VlJQkSVq0aJH69OmjLl26aOTIkcrJyanW+61evVo333yzunfvrilTpigvL89xLCYmRhs3blRcXJx69uypgwcPOo599NFH6tWrl7p06aJRo0Y5rhs1apRiYmLUoUMHxzrCFotFoaGhWrdunW666SZNmTJFr776aqnP9+WXX+rkyZMKCwtTly5dtH79eq1du1YvvPCCunTpojvuuEP9+/fXunXrtH79esedVvfee6969+6tJ598Us8//7zGjBmj/Px83X///YqJiVFMTIzGjRunF198Ub1799a2bdskFa+vHBoaqujoaPn7+8vb21s33HCDQkNDFRwcrHXr1mndunUKDg7WypUrKSIAAABwyaNuom6ibgLgTmjAAIALOXPmjP7v//5P77//vp555hlNnz691I/q38vKytLjjz+u3r17a8WKFbLZbJo+fbokyWazOX7Urlq1Sp6enpo7d64kafHixdq8ebOk4h/Pmzdv1l/+8pdqxejr66uHH35Yb7/9tmJjY+Xn56etW7fq4MGDmjRpkqZNm6avv/5aGRkZ+vzzz6t8v507d+r555/Xs88+q88//1y7d+/W66+/Xuo9Z82apdTUVL3++uu67LLLJEkJCQmaOXOm3nzzTS1btkzHjh3TsmXLJEnvvvuu1q9frxYtWsjHx0eSVFhYqOTkZA0aNEjr16/XK6+8ovvvv9/xHkVFRXrnnXf0yiuvyMfHRxaLRVarVRaLRUeOHHHckVXCy8vLMb1+zpw5WrNmjVasWKEuXbrohhtu0JYtWzRr1iy9/fbb8vLy0vPPP+8oDK6++mrl5+friSeeUEZGhmbPni1vb289+OCDWrlypebOnav09HSdO3dO+fn5ysnJKXfqPgAAAHApom6ibqJuAuAuWIIMAFzI2bNnNWnSJLVp00aXX365pk6dqlOnTjl+PP/e999/L6vVqpEjR8pisWjYsGEaN26cpN9+6Obn56tJkyaaPXu2ioqKJEmBgYGO1wgMDFRQUFC1Y7zzzju1Y8cOXXXVVbr66qvVpEkTFRQUKDIyUj/88IN8fHy0c+dOFRQU6PDhw1W+3+LFizVw4EDdeOONkoo3axw2bJheeOEFxxrDgYGBeu2110rFUTLNPz8/X82bN9eiRYvKjbfkx35+fr4iIyP18ccfOwoFu92uhQsXSiqeav/5558rLCyszGvs37/fMSW/PF5eXvryyy8VHx+vu+++WwMGDNBrr72m5cuXa9SoUYqPj9fw4cP17bff6qmnnlLr1q3l4eGhmTNnKjg4WFOmTNGIESN0xRVXaMKECRo/frx69+6t7du3KyIiQi1atJCHB/dMAAAAABJ1k0TdRN0EwF3QgAEAFxIcHKx27dpJ+u2HsmEYFZ6fmpqq9PR0devWTVLx3Ug5OTnKy8uTr6+v3njjDX3wwQeaOnWqrr32Wk2YMEEtWrT4QzGW3BlV8neJ3NxcTZgwQVu2bFG7du3k4eHhKFwqk5KS4ohfkiIjI5Wbm6v09HQ1atRIkspM6ZekFi1aaPLkyYqLi9OxY8d0ww036KWXXlJoaGip8+x2uxISEmSz2dSgQQPFxMSoZcuWysnJUevWrdW5c2fHueUVEXa7Xf/+9781dOhQbdq0qcxxwzA0duxY5efn65lnntG8efO0bNky/fWvf9Xy5cv12WefacyYMVqwYIHi4+N1xx136MMPP9R1112nxx57TCdPntTp06cVERGhOXPmKC0tTRs2bNCaNWu0du1atW/fXl26dKkyjwAAAMClgrqJuom6CYC7oAEDAC7kwjueqqNp06bq0KGD3nzzTUnFP2ptNpu8vLyUkZGhsLAwzZ8/X3l5eYqNjdXLL7+s9957z3G9xWKptFCpiU8++UTZ2dn64YcfZLVaNXPmTMfayZW9X0REhBITEx2PExMT5evrW6og8PPzK/N+aWlpio6O1uDBg5Wdna1nnnlG7777rl566aVS5z3//PPq1KmTYzq8t7e3li5dqo0bN1Z499eFVq9eLavVqi5dupQqJAzDkMVikcVi0axZsxyfrW3btgoICNCqVav0t7/9Tddff71mzZqlr7/+Wj169NBjjz3mKFiWLVumL774Qtu2bdOrr76q7777TgsWLFDjxo116623asCAAfr555/11FNPVRknAAAAcKmgbqJuom4C4C6YlwcAbqxPnz5KSUnRzp075evrq2+//VaPPfaYDMPQ6dOnNXToUG3YsEEZGRmSitfzvVBkZKQ2bNigtLQ0x1rDFysnJ0eGYSg9PV0rV67U/PnzyxQN5b3f4MGDtXLlSq1Zs0aHDh3S9OnTNWTIEMc0+oocPHhQw4YN09atWx2bVhYUFDiO2+12nTlzRuHh4YqJiVFwcLBCQkKUn5+vO++8U5MnT650nWipeGmDuLg4Pfzww44p+SUWLlyoGTNmSJIj1ri4OD355JMaPny4CgoK9Pnnn+uJJ57QK6+8ovj4eKWmppa5W+zIkSPatWuXRowYoenTp+vuu++WJIWEhKhXr15KSkpS3759K40TAAAAQMWom6ibAMBZaMAAgBsLCgrSu+++q7lz5+rGG2/U6tWrNXv2bHl5eenKK6/UuHHjNGnSJN100006fPiwnnvuuVLXT5o0SXPnzlW/fv20YMGCPxTLQw89JLvdrltuuUVLly7V3Xffrb1791b5ftHR0Zo+fbpee+013XffferQoYPGjBlT5fv16tVLQ4YM0d///nfdfPPNMgyj1B1PBQUFuv322xUXF6dPP/1UAwYMkCRt27ZNS5cu1bfffqvZs2crJSVFXl6lJ4SWLEnw9NNPy8PDQw899JAkyd/fXxs3btTChQv16aefllkq4NFHH9WyZcs0d+5cRUZGavLkyXr66afVu3dvrVmzRvfcc0+Zz/Hss8/qww8/1NGjR9WhQwe9/vrr2rp1q1avXq2ffvpJjRo1KrOOMwAAAIDqo26ibgIAZ7EYtTWHEgAAF7R37149/PDD+vrrrx1rI0tSVlaW+vbtq7y8PM2dO7fUeso9e/bU5MmT9fHHHys2NlZt2rSRJJ05c0affPKJcnNzFRgYqKFDhzo2xvzXv/6lt99+W8nJyQoNDdX111+vv/zlL+ratWuFd6Vt2rRJX331lbZs2aJnnnlG/fv31759+/TWW28pMTFR77zzjry9vXX//ferefPmeueddxQQEGBitgAAAABciqibAMAcNGAAwMV17dq13Odbt279h+++ulSkpaUpPDy8zPObN29W69at1bBhwz/8Hvn5+dq/f79atWolf3//al2zceNGnThxQv3793dsHpqUlKT169dryJAhslqtkqTs7Gz997//1Y033viH4wQAAADqI+qmP466CQBqHw0YAHBxx48fL/d5q9Va7o9jAAAAALjUUDcBAFwRDRgAAAAAAAAAAIBa5uHsAAAAAAAAAAAAAOobGjAAAAAAAAAAAAC1jAYMAAAAAAAAAABALaMBAwAAAAAAAAAAUMtowAAAAAAAAAAAANQyGjAAAAAAAAAAAAC1jAYMAAAAAAAAAABALaMBAwAAAAAAAAAAUMv+P8pVnUYY7OLaAAAAAElFTkSuQmCC"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams['font.sans-serif'] = ['Simhei']\n",
    "\n",
    "fig, axes = plt.subplots(nrows=1,  #一行两列\n",
    "                         ncols=2,\n",
    "                         figsize=(20, 4),\n",
    "                         dpi=100)\n",
    "\n",
    "axes[0].plot(tuned_parameters, error_t)\n",
    "axes[0].set_xlabel(\"n_estimators调优参数\")\n",
    "axes[0].set_ylabel(\"错误率\")\n",
    "axes[0].grid(True)\n",
    "\n",
    "axes[1].plot(tuned_parameters, accuracy_t)\n",
    "axes[1].set_xlabel(\"n_estimators调优参数\")\n",
    "axes[1].set_ylabel(\"正确率\")\n",
    "axes[1].grid(True)\n",
    "\n",
    "plt.show()\n",
    "\n"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T14:58:26.212685200Z",
     "start_time": "2023-12-19T14:58:25.778967500Z"
    }
   },
   "id": "b7c9cbaffeba305e"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 确定min_samples_leaf的取值范围\n",
    "tuned_parameters = range(1, 15, 2)\n",
    "\n",
    "# 创建添加accuracy的一个numpy\n",
    "accuracy_t = np.zeros(len(tuned_parameters))\n",
    "\n",
    "# 创建添加error的一个numpy\n",
    "error_t = np.zeros(len(tuned_parameters))\n",
    "\n",
    "# *******************调优过程实现*******************\n",
    "for index, value in enumerate(tuned_parameters):\n",
    "    rf2 = RandomForestClassifier(n_estimators=150,\n",
    "                                 max_depth=40,\n",
    "                                 max_features=15,\n",
    "                                 min_samples_leaf=value,\n",
    "                                 oob_score=True,\n",
    "                                 random_state=0,\n",
    "                                 n_jobs=-1)\n",
    "    rf2.fit(trainX, trainY)\n",
    "    #输出accuracy\n",
    "    accuracy_t[index] = rf2.oob_score_\n",
    "    #输出log_loss\n",
    "    pre2 = rf2.predict_proba(testX)\n",
    "    error_t[index] = log_loss(testY, pre2, eps=1e-15, normalize=True)\n",
    "    # print(error_t)\n",
    "\n",
    "fig, axes = plt.subplots(nrows=1,  #一行两列\n",
    "                         ncols=2,\n",
    "                         figsize=(20, 4),\n",
    "                         dpi=100)\n",
    "\n",
    "axes[0].plot(tuned_parameters, error_t)\n",
    "axes[0].set_xlabel(\"min_samples_leaf调优参数\")\n",
    "axes[0].set_ylabel(\"错误率\")\n",
    "axes[0].grid(True)\n",
    "\n",
    "axes[1].plot(tuned_parameters, accuracy_t)\n",
    "axes[1].set_xlabel(\"min_samples_leaf调优参数\")\n",
    "axes[1].set_ylabel(\"正确率\")\n",
    "axes[1].grid(True)\n",
    "\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "99ab166e5a581a3b"
  },
  {
   "cell_type": "markdown",
   "source": [
    "过程省略。。。\n",
    "\n",
    "最终确定最优值如下\n",
    "n_estimators=150,\n",
    "max_depth=40,\n",
    "max_features=15,\n",
    "min_samples_leaf=1"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "e47eab57e5caea23"
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "outputs": [
    {
     "data": {
      "text/plain": "RandomForestClassifier(max_depth=40, max_features=15, n_estimators=150,\n                       n_jobs=-1, oob_score=True, random_state=0)",
      "text/html": "<style>#sk-container-id-1 {color: black;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomForestClassifier(max_depth=40, max_features=15, n_estimators=150,\n                       n_jobs=-1, oob_score=True, random_state=0)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier(max_depth=40, max_features=15, n_estimators=150,\n                       n_jobs=-1, oob_score=True, random_state=0)</pre></div></div></div></div></div>"
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rf3 = RandomForestClassifier(n_estimators=150, max_depth=40, max_features=15, min_samples_leaf=1, oob_score=True,\n",
    "                             random_state=0, n_jobs=-1)\n",
    "rf3.fit(trainX,trainY)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T15:03:11.336883800Z",
     "start_time": "2023-12-19T15:03:00.678388100Z"
    }
   },
   "id": "15c894a9b526af00"
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "outputs": [
    {
     "data": {
      "text/plain": "0.9068228807718814"
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rf3.score(testX,testY)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T15:05:22.131024700Z",
     "start_time": "2023-12-19T15:05:21.859379900Z"
    }
   },
   "id": "82935a204db6d96e"
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "outputs": [
    {
     "data": {
      "text/plain": "0.9026430503626871"
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rf3.oob_score_"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T15:09:02.906048900Z",
     "start_time": "2023-12-19T15:09:02.859188800Z"
    }
   },
   "id": "b9085cff278d3093"
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "outputs": [
    {
     "data": {
      "text/plain": "0.3568212030531117"
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pre_proba1=rf3.predict_proba(testX)\n",
    "\n",
    "log_loss(testY,y_pre_proba1)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-12-19T15:08:23.737352Z",
     "start_time": "2023-12-19T15:08:23.447198800Z"
    }
   },
   "id": "f6b00bc582bdd2ff"
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
